﻿2026-06-04T05:36:28.8167331Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T05:36:28.8167955Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T05:36:28.8190963Z shell: /usr/bin/bash -e {0}
2026-06-04T05:36:28.8191397Z ##[endgroup]
2026-06-04T05:36:28.8393826Z Requirement quality findings (17); 129 requirements queued for agent review:
2026-06-04T05:36:28.8398505Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T05:36:28.8415713Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-04T05:36:28.8420388Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T05:36:28.8425523Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T05:36:28.8431047Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T05:36:28.8435602Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T05:36:28.8439854Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T05:36:28.8444590Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T05:36:28.8450207Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T05:36:28.8455239Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T05:36:28.8459550Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-04T05:36:28.8463031Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T05:36:28.8466301Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T05:36:28.8470621Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T05:36:28.8475200Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T05:36:28.8479116Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T05:36:28.8482707Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T05:36:28.8484938Z 
2026-06-04T05:36:28.8485528Z # Requirement quality review
2026-06-04T05:36:28.8486328Z 
2026-06-04T05:36:28.8487473Z You are reviewing 129 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T05:36:28.8490316Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T05:36:28.8493153Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T05:36:28.8495567Z this command's output. Your task is the rubric items below.
2026-06-04T05:36:28.8496822Z 
2026-06-04T05:36:28.8497237Z ## Rubric
2026-06-04T05:36:28.8497773Z 
2026-06-04T05:36:28.8499110Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T05:36:28.8502466Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T05:36:28.8505098Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T05:36:28.8507317Z - **active-voice** — clear subject and active verb.
2026-06-04T05:36:28.8508429Z 
2026-06-04T05:36:28.8509640Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T05:36:28.8511656Z clear concerns.
2026-06-04T05:36:28.8512584Z 
2026-06-04T05:36:28.8513017Z ## Requirements
2026-06-04T05:36:28.8513950Z 
2026-06-04T05:36:28.8514380Z ### REQ-ARCH-1
2026-06-04T05:36:28.8515541Z - Title: Many small acyclically-layered crates
2026-06-04T05:36:28.8517062Z - Required stages: impl
2026-06-04T05:36:28.8517759Z 
2026-06-04T05:36:28.8518192Z ### REQ-ARCH-2
2026-06-04T05:36:28.8519619Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T05:36:28.8521373Z - Required stages: impl
2026-06-04T05:36:28.8522078Z 
2026-06-04T05:36:28.8522498Z ### REQ-ARCH-3
2026-06-04T05:36:28.8524130Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T05:36:28.8526187Z - Required stages: impl, unit
2026-06-04T05:36:28.8527044Z 
2026-06-04T05:36:28.8527472Z ### REQ-ARCH-4
2026-06-04T05:36:28.8528911Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T05:36:28.8531160Z - Required stages: impl, unit
2026-06-04T05:36:28.8531963Z 
2026-06-04T05:36:28.8532396Z ### REQ-DAEMON-1
2026-06-04T05:36:28.8533806Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T05:36:28.8535631Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8536510Z 
2026-06-04T05:36:28.8536935Z ### REQ-DAEMON-2
2026-06-04T05:36:28.8538184Z - Title: Broker/brain split for seamless self-update
2026-06-04T05:36:28.8539854Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8540720Z 
2026-06-04T05:36:28.8541152Z ### REQ-DAEMON-3
2026-06-04T05:36:28.8542507Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T05:36:28.8544239Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8545121Z 
2026-06-04T05:36:28.8545546Z ### REQ-DAEMON-4
2026-06-04T05:36:28.8546696Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T05:36:28.8548218Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8549097Z 
2026-06-04T05:36:28.8549565Z ### REQ-STORE-1
2026-06-04T05:36:28.8555679Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T05:36:28.8562138Z - Required stages: impl, unit
2026-06-04T05:36:28.8562952Z 
2026-06-04T05:36:28.8563379Z ### REQ-MANIFEST-1
2026-06-04T05:36:28.8564939Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T05:36:28.8566904Z - Required stages: doc, impl, unit
2026-06-04T05:36:28.8567766Z 
2026-06-04T05:36:28.8568208Z ### REQ-SEAM-SPAWN
2026-06-04T05:36:28.8569319Z - Title: spawn-session seam
2026-06-04T05:36:28.8570548Z - Required stages: impl, unit
2026-06-04T05:36:28.8571576Z 
2026-06-04T05:36:28.8572040Z ### REQ-SEAM-POSTSPAWN
2026-06-04T05:36:28.8573343Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T05:36:28.8574943Z - Required stages: impl, unit
2026-06-04T05:36:28.8575759Z 
2026-06-04T05:36:28.8576202Z ### REQ-SEAM-PSYCHE
2026-06-04T05:36:28.8577498Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T05:36:28.8579145Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8580058Z 
2026-06-04T05:36:28.8580507Z ### REQ-SEAM-HISTORY
2026-06-04T05:36:28.8582080Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T05:36:28.8584026Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8584902Z 
2026-06-04T05:36:28.8585346Z ### REQ-SEAM-ACTIVITY
2026-06-04T05:36:28.8586930Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T05:36:28.8588854Z - Required stages: impl, unit
2026-06-04T05:36:28.8589689Z 
2026-06-04T05:36:28.8596228Z ### REQ-SEAM-INJECT
2026-06-04T05:36:28.8597897Z - Title: inject-input methods configurable per activity-state
2026-06-04T05:36:28.8599802Z - Required stages: impl, unit
2026-06-04T05:36:28.8600618Z 
2026-06-04T05:36:28.8601060Z ### REQ-SEAM-RESUME
2026-06-04T05:36:28.8602627Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T05:36:28.8604557Z - Required stages: impl, unit
2026-06-04T05:36:28.8605667Z 
2026-06-04T05:36:28.8606139Z ### REQ-SEAM-CAPABILITY
2026-06-04T05:36:28.8607541Z - Title: Hostable endpoint-types capability declaration
2026-06-04T05:36:28.8609246Z - Required stages: impl, unit
2026-06-04T05:36:28.8610067Z 
2026-06-04T05:36:28.8610506Z ### REQ-SEAM-UPDATE
2026-06-04T05:36:28.8611942Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T05:36:28.8613723Z - Required stages: impl, unit
2026-06-04T05:36:28.8614537Z 
2026-06-04T05:36:28.8614959Z ### REQ-API-1
2026-06-04T05:36:28.8616358Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T05:36:28.8618200Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8619064Z 
2026-06-04T05:36:28.8619521Z ### REQ-API-2
2026-06-04T05:36:28.8621170Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T05:36:28.8623260Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8624135Z 
2026-06-04T05:36:28.8624560Z ### REQ-API-3
2026-06-04T05:36:28.8625784Z - Title: commune/signoff are file-drops, not commands
2026-06-04T05:36:28.8627415Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8628291Z 
2026-06-04T05:36:28.8628722Z ### REQ-START-1
2026-06-04T05:36:28.8630341Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T05:36:28.8632338Z - Required stages: impl, unit
2026-06-04T05:36:28.8633149Z 
2026-06-04T05:36:28.8633570Z ### REQ-START-2
2026-06-04T05:36:28.8634809Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T05:36:28.8636448Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8637324Z 
2026-06-04T05:36:28.8637765Z ### REQ-START-3
2026-06-04T05:36:28.8639261Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T05:36:28.8641116Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8641995Z 
2026-06-04T05:36:28.8642412Z ### REQ-START-4
2026-06-04T05:36:28.8643631Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T05:36:28.8645245Z - Required stages: impl, unit
2026-06-04T05:36:28.8646114Z 
2026-06-04T05:36:28.8646528Z ### REQ-EP-1
2026-06-04T05:36:28.8647684Z - Title: Day-one endpoint types; open type system
2026-06-04T05:36:28.8649286Z - Required stages: impl, unit
2026-06-04T05:36:28.8650096Z 
2026-06-04T05:36:28.8650516Z ### REQ-EP-2
2026-06-04T05:36:28.8651899Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T05:36:28.8653709Z - Required stages: impl, unit
2026-06-04T05:36:28.8654513Z 
2026-06-04T05:36:28.8654913Z ### REQ-EP-3
2026-06-04T05:36:28.8656432Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T05:36:28.8658620Z - Required stages: impl, unit
2026-06-04T05:36:28.8659472Z 
2026-06-04T05:36:28.8659902Z ### REQ-EP-4
2026-06-04T05:36:28.8661168Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T05:36:28.8662830Z - Required stages: impl, unit
2026-06-04T05:36:28.8663645Z 
2026-06-04T05:36:28.8664051Z ### REQ-EP-5
2026-06-04T05:36:28.8668834Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T05:36:28.8674103Z - Required stages: 
2026-06-04T05:36:28.8674728Z 
2026-06-04T05:36:28.8675159Z ### REQ-INST-1
2026-06-04T05:36:28.8676502Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T05:36:28.8678197Z - Required stages: 
2026-06-04T05:36:28.8678839Z 
2026-06-04T05:36:28.8679286Z ### REQ-INST-2
2026-06-04T05:36:28.8680411Z - Title: Per-node files, synced Psyche mind
2026-06-04T05:36:28.8681888Z - Required stages: impl, unit
2026-06-04T05:36:28.8682700Z 
2026-06-04T05:36:28.8683122Z ### REQ-INST-3
2026-06-04T05:36:28.8684399Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T05:36:28.8686015Z - Required stages: 
2026-06-04T05:36:28.8686636Z 
2026-06-04T05:36:28.8687058Z ### REQ-INST-4
2026-06-04T05:36:28.8688677Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T05:36:28.8690543Z - Required stages: 
2026-06-04T05:36:28.8691181Z 
2026-06-04T05:36:28.8691593Z ### REQ-INST-5
2026-06-04T05:36:28.8693060Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T05:36:28.8694883Z - Required stages: 
2026-06-04T05:36:28.8695509Z 
2026-06-04T05:36:28.8695927Z ### REQ-INST-6
2026-06-04T05:36:28.8697444Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T05:36:28.8699362Z - Required stages: 
2026-06-04T05:36:28.8700002Z 
2026-06-04T05:36:28.8700413Z ### REQ-INST-7
2026-06-04T05:36:28.8701628Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T05:36:28.8703269Z - Required stages: impl, unit
2026-06-04T05:36:28.8704082Z 
2026-06-04T05:36:28.8704506Z ### REQ-INST-8
2026-06-04T05:36:28.8705819Z - Title: Remote-control mode distinct from local operation
2026-06-04T05:36:28.8707517Z - Required stages: impl, unit
2026-06-04T05:36:28.8708344Z 
2026-06-04T05:36:28.8708767Z ### REQ-INST-9
2026-06-04T05:36:28.8710335Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T05:36:28.8712294Z - Required stages: impl, unit
2026-06-04T05:36:28.8713104Z 
2026-06-04T05:36:28.8713532Z ### REQ-INST-10
2026-06-04T05:36:28.8715235Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T05:36:28.8717346Z - Required stages: impl, unit
2026-06-04T05:36:28.8718152Z 
2026-06-04T05:36:28.8718754Z ### REQ-INST-11
2026-06-04T05:36:28.8720643Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T05:36:28.8723250Z - Required stages: impl, unit
2026-06-04T05:36:28.8724143Z 
2026-06-04T05:36:28.8724609Z ### REQ-INST-12
2026-06-04T05:36:28.8734518Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T05:36:28.8737261Z - Required stages: impl, unit
2026-06-04T05:36:28.8738057Z 
2026-06-04T05:36:28.8738531Z ### REQ-INST-13
2026-06-04T05:36:28.8740113Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T05:36:28.8742027Z - Required stages: impl, unit
2026-06-04T05:36:28.8742830Z 
2026-06-04T05:36:28.8743245Z ### REQ-INST-14
2026-06-04T05:36:28.8746038Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T05:36:28.8749240Z - Required stages: 
2026-06-04T05:36:28.8749871Z 
2026-06-04T05:36:28.8750295Z ### REQ-INST-15
2026-06-04T05:36:28.8755447Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T05:36:28.8761904Z - Required stages: 
2026-06-04T05:36:28.8762588Z 
2026-06-04T05:36:28.8763034Z ### REQ-REACH-1
2026-06-04T05:36:28.8764395Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T05:36:28.8766295Z - Required stages: impl, unit
2026-06-04T05:36:28.8767147Z 
2026-06-04T05:36:28.8767620Z ### REQ-REACH-2
2026-06-04T05:36:28.8769002Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T05:36:28.8771242Z - Required stages: 
2026-06-04T05:36:28.8771946Z 
2026-06-04T05:36:28.8772392Z ### REQ-MSG-1
2026-06-04T05:36:28.8775798Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T05:36:28.8780063Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8781052Z 
2026-06-04T05:36:28.8781513Z ### REQ-MSG-2
2026-06-04T05:36:28.8783590Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T05:36:28.8786095Z - Required stages: impl, unit
2026-06-04T05:36:28.8786909Z 
2026-06-04T05:36:28.8787326Z ### REQ-MSG-3
2026-06-04T05:36:28.8808671Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T05:36:28.8812490Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8813464Z 
2026-06-04T05:36:28.8813973Z ### REQ-NODE-IDENTITY
2026-06-04T05:36:28.8815872Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T05:36:28.8818053Z - Required stages: impl, unit
2026-06-04T05:36:28.8818837Z 
2026-06-04T05:36:28.8819330Z ### REQ-NET-1
2026-06-04T05:36:28.8820792Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T05:36:28.8822673Z - Required stages: impl, unit
2026-06-04T05:36:28.8823511Z 
2026-06-04T05:36:28.8823920Z ### REQ-NET-2
2026-06-04T05:36:28.8825367Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T05:36:28.8827176Z - Required stages: impl
2026-06-04T05:36:28.8827853Z 
2026-06-04T05:36:28.8828266Z ### REQ-NET-3
2026-06-04T05:36:28.8829672Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T05:36:28.8831372Z - Required stages: 
2026-06-04T05:36:28.8832001Z 
2026-06-04T05:36:28.8832420Z ### REQ-PAIR-1
2026-06-04T05:36:28.8833471Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T05:36:28.8834816Z - Required stages: impl, unit
2026-06-04T05:36:28.8835596Z 
2026-06-04T05:36:28.8836019Z ### REQ-PAIR-2
2026-06-04T05:36:28.8837213Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T05:36:28.8838777Z - Required stages: impl, unit
2026-06-04T05:36:28.8839604Z 
2026-06-04T05:36:28.8840025Z ### REQ-PAIR-3
2026-06-04T05:36:28.8841280Z - Title: Fetch current pairing code from any paired node
2026-06-04T05:36:28.8842914Z - Required stages: impl, unit
2026-06-04T05:36:28.8843707Z 
2026-06-04T05:36:28.8844132Z ### REQ-PAIR-4
2026-06-04T05:36:28.8845195Z - Title: Subnet naming on first pairing
2026-06-04T05:36:28.8846574Z - Required stages: impl, unit
2026-06-04T05:36:28.8847358Z 
2026-06-04T05:36:28.8847789Z ### REQ-PAIR-5
2026-06-04T05:36:28.8850081Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T05:36:28.8852730Z - Required stages: impl, unit
2026-06-04T05:36:28.8853524Z 
2026-06-04T05:36:28.8853943Z ### REQ-PAIR-6
2026-06-04T05:36:28.8855915Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T05:36:28.8858302Z - Required stages: impl, unit
2026-06-04T05:36:28.8859089Z 
2026-06-04T05:36:28.8859548Z ### REQ-PAIR-7
2026-06-04T05:36:28.8860903Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T05:36:28.8862587Z - Required stages: 
2026-06-04T05:36:28.8863503Z 
2026-06-04T05:36:28.8863921Z ### REQ-SEC-1
2026-06-04T05:36:28.8866764Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T05:36:28.8870098Z - Required stages: impl, unit
2026-06-04T05:36:28.8870903Z 
2026-06-04T05:36:28.8871328Z ### REQ-NOTIF-1
2026-06-04T05:36:28.8873959Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T05:36:28.8877141Z - Required stages: 
2026-06-04T05:36:28.8877796Z 
2026-06-04T05:36:28.8878227Z ### REQ-NOTIF-2
2026-06-04T05:36:28.8880455Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T05:36:28.8882849Z - Required stages: 
2026-06-04T05:36:28.8883476Z 
2026-06-04T05:36:28.8883891Z ### REQ-UPD-1
2026-06-04T05:36:28.8884966Z - Title: Peer-propagated update over P2P
2026-06-04T05:36:28.8886360Z - Required stages: 
2026-06-04T05:36:28.8886982Z 
2026-06-04T05:36:28.8887401Z ### REQ-UPD-2
2026-06-04T05:36:28.8888623Z - Title: All binaries signature-verified before handoff
2026-06-04T05:36:28.8890285Z - Required stages: impl, unit
2026-06-04T05:36:28.8891095Z 
2026-06-04T05:36:28.8891505Z ### REQ-UPD-3
2026-06-04T05:36:28.8893102Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T05:36:28.8894935Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8895790Z 
2026-06-04T05:36:28.8896214Z ### REQ-UPD-4
2026-06-04T05:36:28.8897679Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T05:36:28.8899600Z - Required stages: impl, unit
2026-06-04T05:36:28.8900408Z 
2026-06-04T05:36:28.8900824Z ### REQ-UPD-5
2026-06-04T05:36:28.8907498Z - Title: spt-core ripple-updates registered adapters
2026-06-04T05:36:28.8909335Z - Required stages: impl, unit
2026-06-04T05:36:28.8910148Z 
2026-06-04T05:36:28.8910587Z ### REQ-TERM-1
2026-06-04T05:36:28.8912081Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T05:36:28.8913940Z - Required stages: impl, unit
2026-06-04T05:36:28.8914762Z 
2026-06-04T05:36:28.8915181Z ### REQ-TERM-2
2026-06-04T05:36:28.8916779Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T05:36:28.8918710Z - Required stages: impl, unit
2026-06-04T05:36:28.8919598Z 
2026-06-04T05:36:28.8920057Z ### REQ-TERM-3
2026-06-04T05:36:28.8921598Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T05:36:28.8923397Z - Required stages: impl, unit
2026-06-04T05:36:28.8924248Z 
2026-06-04T05:36:28.8924701Z ### REQ-TERM-4
2026-06-04T05:36:28.8927493Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T05:36:28.8930797Z - Required stages: impl, unit, int
2026-06-04T05:36:28.8931713Z 
2026-06-04T05:36:28.8932149Z ### REQ-FRONT-1
2026-06-04T05:36:28.8933715Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T05:36:28.8935635Z - Required stages: 
2026-06-04T05:36:28.8936399Z 
2026-06-04T05:36:28.8936855Z ### REQ-INSTALL-1
2026-06-04T05:36:28.8938519Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T05:36:28.8940715Z - Required stages: 
2026-06-04T05:36:28.8941380Z 
2026-06-04T05:36:28.8941829Z ### REQ-INSTALL-2
2026-06-04T05:36:28.8943105Z - Title: Marketplace-repackaging-friendly install
2026-06-04T05:36:28.8944707Z - Required stages: 
2026-06-04T05:36:28.8945351Z 
2026-06-04T05:36:28.8945795Z ### REQ-INSTALL-3
2026-06-04T05:36:28.8947130Z - Title: Idempotent + interactive-optional first run
2026-06-04T05:36:28.8948707Z - Required stages: 
2026-06-04T05:36:28.8949538Z 
2026-06-04T05:36:28.8950114Z ### REQ-INSTALL-4
2026-06-04T05:36:28.8954721Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T05:36:28.8960307Z - Required stages: 
2026-06-04T05:36:28.8960985Z 
2026-06-04T05:36:28.8961435Z ### REQ-MIGRATE-1
2026-06-04T05:36:28.8962968Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T05:36:28.8964813Z - Required stages: 
2026-06-04T05:36:28.8965464Z 
2026-06-04T05:36:28.8965935Z ### REQ-INFRA-1
2026-06-04T05:36:28.8967496Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T05:36:28.8969610Z - Required stages: 
2026-06-04T05:36:28.8970256Z 
2026-06-04T05:36:28.8970671Z ### REQ-DOCS-1
2026-06-04T05:36:28.8972275Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T05:36:28.8974516Z - Required stages: 
2026-06-04T05:36:28.8975172Z 
2026-06-04T05:36:28.8975725Z ### REQ-DOCS-2
2026-06-04T05:36:28.8977158Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T05:36:28.8978928Z - Required stages: 
2026-06-04T05:36:28.8979638Z 
2026-06-04T05:36:28.8980094Z ### REQ-DOCS-3
2026-06-04T05:36:28.8981743Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T05:36:28.8983410Z - Required stages: 
2026-06-04T05:36:28.8984068Z 
2026-06-04T05:36:28.8984519Z ### REQ-DOCS-4
2026-06-04T05:36:28.8986185Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T05:36:28.8988463Z - Required stages: 
2026-06-04T05:36:28.8989125Z 
2026-06-04T05:36:28.8989746Z ### REQ-DOCS-5
2026-06-04T05:36:28.8991331Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T05:36:28.8993482Z - Required stages: 
2026-06-04T05:36:28.8994163Z 
2026-06-04T05:36:28.8994712Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T05:36:28.8996659Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T05:36:28.8998705Z - Required stages: impl, unit
2026-06-04T05:36:28.8999705Z 
2026-06-04T05:36:28.9000249Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T05:36:28.9001877Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T05:36:28.9003615Z - Required stages: impl, unit
2026-06-04T05:36:28.9004434Z 
2026-06-04T05:36:28.9004933Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T05:36:28.9006392Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T05:36:28.9007930Z - Required stages: 
2026-06-04T05:36:28.9008562Z 
2026-06-04T05:36:28.9009085Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T05:36:28.9010889Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T05:36:28.9012842Z - Required stages: impl, unit
2026-06-04T05:36:28.9013648Z 
2026-06-04T05:36:28.9014126Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T05:36:28.9015800Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T05:36:28.9017729Z - Required stages: impl, unit
2026-06-04T05:36:28.9018538Z 
2026-06-04T05:36:28.9019068Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T05:36:28.9020954Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T05:36:28.9022916Z - Required stages: 
2026-06-04T05:36:28.9023557Z 
2026-06-04T05:36:28.9024060Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T05:36:28.9025512Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T05:36:28.9027057Z - Required stages: 
2026-06-04T05:36:28.9027711Z 
2026-06-04T05:36:28.9028244Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T05:36:28.9029996Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T05:36:28.9031805Z - Required stages: impl, unit
2026-06-04T05:36:28.9032625Z 
2026-06-04T05:36:28.9033129Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T05:36:28.9034626Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T05:36:28.9036296Z - Required stages: impl, int
2026-06-04T05:36:28.9037094Z 
2026-06-04T05:36:28.9037611Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T05:36:28.9039475Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T05:36:28.9041468Z - Required stages: impl, unit
2026-06-04T05:36:28.9042276Z 
2026-06-04T05:36:28.9043027Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T05:36:28.9049488Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T05:36:28.9051387Z - Required stages: impl, unit
2026-06-04T05:36:28.9052214Z 
2026-06-04T05:36:28.9052743Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T05:36:28.9054608Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T05:36:28.9056664Z - Required stages: impl, unit
2026-06-04T05:36:28.9057470Z 
2026-06-04T05:36:28.9058016Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T05:36:28.9060109Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T05:36:28.9061870Z - Required stages: impl, unit
2026-06-04T05:36:28.9062688Z 
2026-06-04T05:36:28.9063226Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T05:36:28.9065029Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T05:36:28.9066916Z - Required stages: impl, unit
2026-06-04T05:36:28.9067946Z 
2026-06-04T05:36:28.9068544Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T05:36:28.9071022Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T05:36:28.9073236Z - Required stages: impl, unit
2026-06-04T05:36:28.9074048Z 
2026-06-04T05:36:28.9074517Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T05:36:28.9076607Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T05:36:28.9079317Z - Required stages: impl, unit
2026-06-04T05:36:28.9080715Z 
2026-06-04T05:36:28.9081346Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T05:36:28.9083450Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T05:36:28.9085578Z - Required stages: impl, unit
2026-06-04T05:36:28.9086420Z 
2026-06-04T05:36:28.9086978Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T05:36:28.9089453Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T05:36:28.9092445Z - Required stages: impl, unit
2026-06-04T05:36:28.9093300Z 
2026-06-04T05:36:28.9093822Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-04T05:36:28.9096829Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-04T05:36:28.9100009Z - Required stages: doc, impl, unit
2026-06-04T05:36:28.9100891Z 
2026-06-04T05:36:28.9101427Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T05:36:28.9104683Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T05:36:28.9108187Z - Required stages: impl, unit
2026-06-04T05:36:28.9109030Z 
2026-06-04T05:36:28.9109834Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T05:36:28.9111923Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T05:36:28.9113811Z - Required stages: impl, unit
2026-06-04T05:36:28.9114662Z 
2026-06-04T05:36:28.9115212Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T05:36:28.9117031Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T05:36:28.9118891Z - Required stages: impl, unit
2026-06-04T05:36:28.9119933Z 
2026-06-04T05:36:28.9120576Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T05:36:28.9122513Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T05:36:28.9124917Z - Required stages: impl, unit
2026-06-04T05:36:28.9125800Z 
2026-06-04T05:36:28.9126416Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T05:36:28.9128253Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T05:36:28.9130572Z - Required stages: impl, unit
2026-06-04T05:36:28.9131491Z 
2026-06-04T05:36:28.9132043Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T05:36:28.9133715Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T05:36:28.9135489Z - Required stages: impl, unit
2026-06-04T05:36:28.9136348Z 
2026-06-04T05:36:28.9136871Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T05:36:28.9138566Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T05:36:28.9140476Z - Required stages: impl, unit
2026-06-04T05:36:28.9141777Z 
2026-06-04T05:36:28.9142389Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T05:36:28.9144497Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T05:36:28.9146882Z - Required stages: impl, unit
2026-06-04T05:36:28.9147737Z 
2026-06-04T05:36:28.9148237Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T05:36:28.9150504Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T05:36:28.9152721Z - Required stages: impl, unit
2026-06-04T05:36:28.9153581Z 
2026-06-04T05:36:28.9154132Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T05:36:28.9155881Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T05:36:28.9157768Z - Required stages: impl, unit
2026-06-04T05:36:28.9158616Z 
2026-06-04T05:36:28.9159301Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T05:36:28.9161327Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T05:36:28.9162994Z - Required stages: impl, unit
2026-06-04T05:36:28.9163791Z 
2026-06-04T05:36:28.9164380Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T05:36:28.9166500Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T05:36:28.9168643Z - Required stages: impl, unit
2026-06-04T05:36:28.9169495Z 
2026-06-04T05:36:28.9170051Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-04T05:36:28.9174848Z - Title: A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)
2026-06-04T05:36:28.9179389Z - Required stages: impl, unit
2026-06-04T05:36:28.9180191Z 
2026-06-04T05:36:28.9180668Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T05:36:28.9182537Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T05:36:28.9184789Z - Required stages: impl, unit
2026-06-04T05:36:28.9185595Z 
2026-06-04T05:36:28.9186141Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T05:36:28.9188076Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T05:36:28.9190266Z - Required stages: impl, unit
2026-06-04T05:36:28.9191069Z 
2026-06-04T05:36:28.9191593Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T05:36:28.9193930Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T05:36:28.9196436Z - Required stages: impl, unit, int
2026-06-04T05:36:28.9197319Z 
2026-06-04T05:36:28.9197817Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T05:36:28.9200094Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T05:36:28.9202547Z - Required stages: impl, unit
2026-06-04T05:36:28.9203364Z 
2026-06-04T05:36:28.9203913Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T05:36:28.9207372Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T05:36:28.9216162Z - Required stages: impl, unit, int
2026-06-04T05:36:28.9217307Z 
2026-06-04T05:36:28.9217875Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T05:36:28.9223669Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T05:36:28.9228914Z - Required stages: 
2026-06-04T05:36:28.9229603Z 
2026-06-04T05:36:28.9230159Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T05:36:28.9235260Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T05:36:28.9240406Z - Required stages: 
2026-06-04T05:36:28.9241049Z 
2026-06-04T05:36:28.9241585Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T05:36:28.9246175Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T05:36:28.9251127Z - Required stages: impl, unit
2026-06-04T05:36:28.9251936Z 
2026-06-04T05:36:28.9252471Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T05:36:28.9256796Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T05:36:28.9261164Z - Required stages: impl, unit
2026-06-04T05:36:28.9261980Z 
2026-06-04T05:36:28.9262474Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T05:36:28.9268334Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T05:36:28.9274250Z - Required stages: impl, unit
2026-06-04T05:36:28.9275050Z 
2026-06-04T05:36:28.9275555Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-04T05:36:28.9281061Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-04T05:36:28.9286590Z - Required stages: doc, impl, unit
2026-06-04T05:36:28.9287478Z 
2026-06-04T05:36:28.9287917Z ## How to report back
2026-06-04T05:36:28.9288590Z 
2026-06-04T05:36:28.9289511Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T05:36:28.9290874Z 
2026-06-04T05:36:28.9291284Z     {
2026-06-04T05:36:28.9292280Z       "code": "requirement_quality",
2026-06-04T05:36:28.9293643Z       "requirementId": "REQ-...",
2026-06-04T05:36:28.9295346Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T05:36:28.9297254Z       "message": "<short reason>",
2026-06-04T05:36:28.9298670Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T05:36:28.9300145Z     }
2026-06-04T05:36:28.9300647Z 
2026-06-04T05:36:28.9301643Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T05:36:28.9303912Z deterministic findings above don't need to be repeated.
